package com.glsc.ngateway.platform.service.easyflow.dto;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.glsc.ngateway.common.api.flowable.dto.CurrentTaskInfoDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.util.List;

/**
 * @Author: tangyf
 * @Date: 2022/5/25
 * @Desc: 产品系统工作流程消息异步处理信息
 */
@ToString
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
public class WorkflowMsgDto implements Serializable {

    private static final long serialVersionUID = -6775198900235636715L;

    @ApiModelProperty(value = "消息ID")
    private String msgId;

    @ApiModelProperty(value = "消息类别")
    private String msgType;

    @ApiModelProperty(value = "消息文本描述")
    private String msgInfo;

    @ApiModelProperty(value = "流程类型")
    private String processDefineKey;

    @ApiModelProperty(value = "流程实例ID")
    private String processId;

    @ApiModelProperty(value = "任务ID")
    private String taskId;

    @ApiModelProperty(value = "任务处理节点标识")
    private String taskDefinitionKey;

    @ApiModelProperty(value = "操作人账号")
    private String operatorAccount;

    @ApiModelProperty(value = "当前任务名称")
    private String currentTaskName;

    @ApiModelProperty(value = "是否正常通过")
    private Boolean passProperly = true;

    @ApiModelProperty(value = "是否发起至发起节点")
    private Boolean createToBeginTask = false;

    @ApiModelProperty(value = "是否通用流程（公共处理）")
    private Boolean pubProdFlow = false;

    @ApiModelProperty(value = "节点通过前任务信息")
    private List<CurrentTaskInfoDto> beforeAuditFlowTaskList;

    @ApiModelProperty(value = "节点通过后任务信息")
    private List<CurrentTaskInfoDto> afterAuditFlowTaskList;

    @ApiModelProperty(value = "节点通过后流程表单信息")
    private FlowDataDto afterFlowDataDto;
}
